﻿namespace MEF_Test.Bricks.StronglyTypedExports
{
    using System;
    using System.Collections.Generic;
    using System.ComponentModel.Composition;

    /// <summary>
    /// A customized export attribute to export strongly typed parts in MEF that holds a reference to an interface 
    /// </summary>
    [MetadataAttribute]
    [AttributeUsage(AttributeTargets.Property)]
    public class MediaHandlerTemplateExportAttribute : Attribute, IMediaHandlerTemplateExportAttribute
    {
        /// <summary>
        /// Gets or sets a value indicating whether this instance is default template.
        /// </summary>
        /// <value>
        /// <c>true</c> if this instance is default template; otherwise, <c>false</c>.
        /// </value>
        /// /// <remarks>Setting this attribute property is optional : it is only used so templates can be used as fallback templates if no specific templates were defined in the skin file.</remarks>
        public bool IsDefaultTemplate { get; set; }

        /// <summary>
        /// Gets or sets the default kind of the template.
        /// </summary>
        /// <value>The default kind of the template.</value>
        /// <remarks>Setting this attribute property is optional : it is only used so templates can be used as fallback templates if no specific templates were defined in the skin file.</remarks>
        public string DefaultTemplateKind { get; set; }

        /// <summary>
        /// Gets or sets the template GUID.
        /// </summary>
        /// <value>The template GUID.</value>
        public string TemplateGuid { get; set; }
    }
}